package edu.uoc.tds.pac4.beans;

import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

public class TipusEvent implements Esborrable, Serializable {
	private static final long serialVersionUID = 1L;
	private String codi;
	private String nom;
	private String ampliacio;
	private Date dataAlta;
	private boolean actiu;
	private Date dataBaixa;
	private String motiuBaixa;
	
	/***
	 * Constructor per a altes
	 * @param codi
	 * @param nom
	 * @param ampliacio
	 */
	public TipusEvent(String codi, String nom, String ampliacio){
		super();
		this.codi=codi;
		this.nom=nom;
		this.ampliacio=ampliacio;
		this.actiu=true;
		this.dataAlta=new Date();
		this.dataBaixa=null;
		this.motiuBaixa="";
	}
	/***
	 * Constructor per a carregar un element de la bbdd
	 * @param codi
	 * @param nom
	 * @param ampliacio
	 * @param dataAlta
	 * @param inactiu
	 * @param dataBaixa
	 * @param motiuBaixa
	 */
	public TipusEvent(String codi, String nom, String ampliacio, Date dataAlta, boolean actiu, Date dataBaixa, String motiuBaixa){
		super();
		this.codi=codi;
		this.nom=nom;
		this.ampliacio=ampliacio;
		this.actiu=actiu;
		this.dataAlta=dataAlta;
		this.dataBaixa=dataBaixa;
		this.motiuBaixa=motiuBaixa;
	}

	/**
	 * Constructor buit
	 */
	public TipusEvent() {
		super();
	}

	@Override
	public void baixa(Date data, String motiu) {
		this.actiu=false;
		this.dataBaixa=data;
		this.motiuBaixa = motiu;
	}

	public String getNom() {
		return nom;
	}

	public void setNom(String nom) {
		this.nom = nom;
	}
	
	public String getCodi() {
		return codi;
	}
	
	public void setCodi(String codi) {
		this.codi = codi;
	}

	public String getAmpliacio() {
		return ampliacio;
	}

	public void setAmpliacio(String ampliacio) {
		this.ampliacio = ampliacio;
	}

	public Date getDataAlta() {
		return dataAlta;
	}

	public void setDataAlta(Date dataAlta) {
		this.dataAlta = dataAlta;
	}

	public boolean isActiu() {
		return actiu;
	}
	
	public void setActiu(boolean actiu) {
		this.actiu = actiu;
	}

	public Date getDataBaixa() {
		return dataBaixa;
	}

	public String getMotiuBaixa() {
		return motiuBaixa;
	}
	
	public void setMotiuBaixa(String motiuBaixa) {
		this.motiuBaixa = motiuBaixa;
	}

	/**
	 * Construeix una universitat a partir d'un RS
	 * @param rs
	 * @throws SQLException 
	 */
	public void buildFromRS(ResultSet rs) throws SQLException {
		setCodi(rs.getString("te_codi_tevent"));
		setNom(rs.getString("te_nom"));
		setAmpliacio(rs.getString("te_ampliacio_desc"));
		setDataAlta(rs.getDate("te_data_alta"));
		setAmpliacio(ampliacio);
		setActiu(rs.getString("te_actiu").equals("S"));
		setDataAlta(rs.getDate("te_data_baixa"));
		setMotiuBaixa(rs.getString("te_motiu_baixa"));
	}
	
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return getNom();
	}
}
